package com.liao.common.entity.order;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 订单主表
 *
 * @author liao
 * @email 2858015963@qq.com
 * @date 2025-03-14 09:23:11
 */
@Data
@TableName("orders")
public class OrdersEntity implements Serializable {
    private static final long serialVersionUID = 1L;


    @TableId
    private Integer id;

    /**
     * 订单号（规则：年+类型+流水）
     */

    private String orderId;
    /**
     * 下单用户ID
     */
    private Integer memberId;
    /**
     * 用户名
     */
    private String name;
    /**
     * 订单总额（含运费）
     */
    private BigDecimal totalAmount;
    /**
     * 支付状态 1 未支付 2 已经支付
     */
    private Integer paymentStatus;
    /**
     * 订单进度
     */
    private Integer orderStatus;
    /**
     * 省份/州
     */
    private String province;
    /**
     * 城市
     */
    private String city;
    /**
     * 区县
     */
    private String district;
    /**
     * 详细地址
     */
    private String detail;
    /**
     * 买家留言
     */
    private String buyerMessage;
    /**
     * 收货人姓名
     */
    private String consignee;
    /**
     * 联系电话
     */
    private String phone;
    /**
     * 实付金额
     */
    private BigDecimal payMoney;
    /**
     * 付款时间
     */
    private Date payTime;
    /**
     * 发货时间
     */
    private Date consignTime;
    /**
     * 预计到货时间
     */
    private Date arrivalEstimatedTime;
    /**
     * 交易完成时间
     */
    private Date endTime;
    /**
     * 交易关闭时间
     */
    private Date closeTime;
    /**
     * 完成评价时间
     */
    private Date evaluationTime;
    /**
     * 下单时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone = "GMT+8")
    private Date createdAt;
    /**
     * 最后状态时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone = "GMT+8")
    private Date updatedAt;

}
